---
image: /generated/articles-docs-renderer-open-browser.png
title: openBrowser()
id: open-browser
crumb: '@remotion/renderer'
---

_Available since v3.0 - Part of the `@remotion/renderer` package._

Opens a Chrome or Chromium browser instance. By reusing an instance across [`renderFrames()`](/docs/renderer/render-frames), [`renderStill()`](/docs/renderer/render-still), [`renderMedia()`](/docs/renderer/render-media) and [`getCompositions()`](/docs/renderer/get-compositions) calls, you can save time by not opening and closing browsers for each call.

```ts
const openBrowser: (
  browser: Browser,
  options: {
    shouldDumpIo?: boolean;
    browserExecutable?: string | null;
    chromiumOptions?: ChromiumOptions;
  },
) => Promise<puppeteer.Browser>;
```

## Arguments

### `browser`

Currently the only valid option is `"chrome"`. This field is reserved for future compatibility with other browsers.

### `options?`

_optional_

An object containing one or more of the following options:

#### ~`shouldDumpIo?`~

_optional, deprecated since v4.0.189, scheduled for removal in v5.0_

If set to `true`, logs and other browser diagnostics are being printed to standard output. This setting is useful for debugging.  
**Will be removed in 5.0:** Use `logLevel` instead.

#### `logLevel?`<AvailableFrom v="4.0.189"/>

_optional_

<Options id="log" />

#### `browserExecutable?`

_optional_

A string defining the absolute path on disk of the browser executable that should be used. By default Remotion will try to detect it automatically and download one if none is available. If `puppeteerInstance` is defined, it will take precedence over `browserExecutable`.

#### `chromiumOptions?`

_optional_

Allows you to set certain Chromium / Google Chrome flags. See: [Chromium flags](/docs/chromium-flags).

:::note
Chromium flags need to be set at browser launch. If you pass an instance to SSR APIs like [`renderMedia()`](/docs/renderer/render-media), the `chromiumOptions` option of that API will not apply, but rather the flags that have been passed to `openBrowser()`.
:::

#### `forceDeviceScaleFactor?`

Set a [scale](/docs/scaling). If you plan to use scaling, you already need to set it when opening the browser.

#### `onBrowserDownload?`<AvailableFrom v="4.0.137" />

<Options id="on-browser-download" />

### `chromeMode?`<AvailableFrom v="4.0.248" />

<Options id="chrome-mode" />

## See also

- [Source code for this function](https://github.com/remotion-dev/remotion/blob/main/packages/renderer/src/open-browser.ts)
- [Server-Side rendering](/docs/ssr)
